// 二次封装axios
import axios from "axios";
import NProgress from 'nprogress';
import 'nprogress/nprogress.css'
import store from "@/store";
const requests = axios.create({
  baseURL:'/api/' ,//配置基础路径,,路径当中会出现api
  withCredentials: true, // 允许携带token ,这个是解决跨域产生的相关问题
  timeout:2500 //请求延时
})
// 请求拦截器 在项目中发请求（请求没有发出去）可以做一些事情 
requests.interceptors.request.use(config=>{
  NProgress.start()
  // config 配置对象,headers
  if(store.state.shopcart.uuid_token) config.headers.userTempId = store.state.shopcart.uuid_token
  if(store.state.user.token) config.headers.token = store.state.user.token
  return config
})
// 响应拦截器 在项目中后端返回数据
requests.interceptors.response.use(res=>{
  NProgress.done()
  // 成功的回调函数
  return res.data
},error=>{
  // 失败后的回调函数
  return Promise.reject(new Error ('fail'))
})

// 向外暴露
export default requests;